<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery.js"></script>
    <style>
        .block{
            display: inline-block;
            width: 150px;
        }
        input{
            width: 50px;
        }
        div.operation{
            width: 300px;
        }
        div.toolbar-right{
            width: 450px;
        }
        div.toolbar-right .btn-area{
            float:right;
            border: 1px solid gray;
            background-color: red;
            color: wheat;
            width: 80px;
            text-align: center;
        }
        em{
            color: red;
        }
    </style>
</head>
<body>
    <div>
        <div class="cart-warp">
            <!-- 头部全选模块 -->
            <div class="cart-thead ">
                <div class="t-checkbox block">
                    <input type="checkbox" class="checkall"> 全选
                </div>
                <div class="block">
                    商品
                </div>
                <div class="block">
                    价格
                </div>
                <div class="block" >
                    数量
                </div>
                <div class="block">
                    总价
                </div>
            </div>
            <hr>
            <!-- 商品详细模块 -->
            <div class="cart-item-list">
                <div class="cart-itme check-cart-item">
                    <div class="p-checkbox block">
                        <input type="checkbox" checked class="j-checkbox">
                    </div>
                    <div class="p-name block">
                        童话书
                    </div>
                    <div class="p-price block ">￥12.62</div>
                    <div class="p-num block">
                        <div class="quantity-form">
                            <a href="#" class="decrement">-</a>
                            <input type="text" class="itxt" value="1">
                            <a href="#" class="increment">+</a>
                        </div>
                    </div>
                    <div class="p-sum block ">￥12.62</div>
                    <div class="p-action block ">
                        <a href="#">删除</a>
                    </div>
                </div>

                <div class="cart-itme check-cart-item">
                    <div class="p-checkbox block">
                        <input type="checkbox" checked class="j-checkbox">
                    </div>
                    <div class="p-name block">
                        小人书
                    </div>
                    <div class="p-price block ">￥24.38</div>
                    <div class="p-num block">
                        <div class="quantity-form">
                            <a href="#" class="decrement">-</a>
                            <input type="text" class="itxt" value="1" readonly="readonly">
                            <!-- readonly="readonly" 无法手动输入-->
                            <a href="#" class="increment">+</a>
                        </div>
                    </div>
                    <div class="p-sum block ">￥24.38</div>
                    <div class="p-action block ">
                        <a href="#">删除</a>
                    </div>
                </div>

                <div class="cart-itme check-cart-item">
                    <div class="p-checkbox block">
                        <input type="checkbox" checked class="j-checkbox">
                    </div>
                    <div class="p-name block">
                        故事书
                    </div>
                    <div class="p-price block ">￥35.00</div>
                    <div class="p-num block">
                        <div class="quantity-form">
                            <a href="#" class="decrement">-</a>
                            <input type="text" class="itxt" value="1"  disabled="disabled">
                            <!-- disabled="disabled" 无法点击无法手动输入-->
                            <a href="#" class="increment">+</a>
                        </div>
                    </div>
                    <div class="p-sum block ">￥35.00</div>
                    <div class="p-action block ">
                        <a href="#">删除</a>
                    </div>
                </div>

                <hr>

                <!-- 结算模块 -->
                <div class="cart-flostbar">
                    <div class="select-all block">
                        <input type="checkbox" class="checkall">全选
                    </div>
                    <div class="operation block">
                        <a href="#" class="remove-batch">删除选中的商品</a>
                        <a href="#" class="remove-batch">清理购物车</a>
                    </div>
                    <div class="toolbar-right block">
                        <div class="amount-sum block">已经选<em>1</em>件商品</div>
                        <div class="price-sum block">总价：<em>￥12.60</em></div>
                        <div class="btn-area block">去结算</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
<script>
    $(function () {
        // 1.全选 全不选功能模块
        // 就是把按钮（checkall）的状态赋值给 三个小按钮（j-checkbox） 就可以了
        // 事件可以使用change
        $(".checkall").change(function() {
            // console.log($(this).prop("checked"));打印true、false
            $(".j-checkbox,.checkall").prop("checked",$(this).prop("checked"));
        })
        // 2.如果小复选框被选中个数等于3 就应该把全选按钮选上，否则全选按钮不选。
        $(".j-checkbox").change(function() {
            // if(被选中的小复选框个数 === 3){
            //     就要选中全选框
            // } else {
            //     不要选中全选框
            // }
            // console.log($(".j-checkbox:checked").length);//:checked输出被选中的表单元素
            if($(".j-checkbox:checked").length === $(".j-checkbox").length){
                $(".checkall").prop("checked",true);
            }else{
                $(".checkall").prop("checked",false);
            }
        })
        // 3.增减商品数量模块 首先声明一个变量，当我们点击+号（increment） 就让这个值++，然后赋值给文本框
        $(".increment").click(function() {
            var n = $(this).siblings(".itxt").val();
            // console.log(n); 
            n++;
            $(this).siblings(".itxt").val(n);
            
            // 4.计算小计模块 根据文本框的值 乘以 当前商品的价格 就是 商品的小计
            // 当前商品的价格 p
            // var p = $(this).parent().parent().siblings(".p-price").html();
            // parents(".p-num") 返回指定的祖先元素
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            // console.log(p);
            var price = (p * n).toFixed(2);
            // toFixed(2)可以让我们保留两位小数
            //小计模块
            $(this).parents(".p-num").siblings(".p-sum").html("￥" + price);
            getSum();
        });
        $(".decrement").click(function() {
            //得到当前兄弟文本框的值
            var n = $(this).siblings(".itxt").val(); 
            if(n == 1){
                return false;
            }
            n--;
            $(this).siblings(".itxt").val(n);
            // 当前商品的价格 p
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            // console.log(p);
            //小计模块
            $(this).parents(".p-num").siblings(".p-sum").html("￥" + (p * n).toFixed(2));
            getSum();
        });
        // 5.用户修改文本框的值 计算 小计模块
        $(".itxt").change(function() {
            // 先得到文本框里面的值 乘以 当前商品的单价
            var n = $(this).val();
            // 当n<=0时输入无效、但是没有解决输入是小数问题
            if(n <= 0){
                return false;
            }
            // 当前商品的单价
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            // console.log(p);
            p = p.substr(1);
            $(this).parents(".p-num").siblings(".p-sum").html("￥" + (p * n).toFixed(2));
            getSum();
        });
            // 6.计算总计和总额模块
            getSum();//页面打开时调用一次

            function getSum() {
                var count = 0;//计算总件数
                var money = 0;//计算总价钱
                $(".itxt").each(function(i,ele) {
                    count += parseInt($(ele).val());
                });
                $(".amount-sum em").text(count);

                $(".p-sum").each(function(i,ele) {
                    money += parseFloat($(ele).text().substr(1));
                });
                $(".price-sum em").text("￥" + money.toFixed(2));
            }
    })
</script>
</html>